package com.neuedu.javase.array;

/***
 * 项目名称:  MyJavaSE 
 * 包：  com.neuedu.javase.array 
 * date:   2025/10/23   8:54  
 * 描述:  数组练习
 *  @author : 张金山
 *  作者博客:   https://blog.fulfill.com.cn
 */
public class Work {


    /**
     * 1、编写一个简单程序，要求数组长度为5，分别赋值10，20，30，40，50，在控制台输出该数组的值。
     * 2、将一个字符数组的值（neusofteducation）拷贝到另一个字符数组中。
     * 3、给定一个有9个整数（1,6,2,3,9,4,5,7,8）的数组，先排序，然后输出排序后的数组的值。
     * 4、在一个有8个整数（18，25，7，36，13，2，89，63）的数组中找出其中最大的数及其下标。
     * 5、将一个数组中的元素逆序存放到另一各数组中。
     * 6、将一个数组中的重复元素保留一个其他的清零。
     * 7、给定一维数组{ -10，2，3，246，-100，0，5} ，计算出数组中的平均值、最大值、最小值。
     * @param args
     */
    public static void main(String[] args) {

//        1、编写一个简单程序，要求数组长度为5，分别赋值10，20，30，40，50，在控制台输出该数组的值。
//        int nums[] = new int[5]{10,20,30,40,50};
//        int nums[] = new int[5];
////        nums[0] = 10;
////        nums[1] = 20;
////        nums[2] = 30;
////        nums[3] = 40;
////        nums[4] = 50;
//        for (int i = 0; i < nums.length; i++) {
//            nums[i] = 10 * (i+1);
//        }
//        for (int i = 0; i < nums.length; i++) {
//            System.out.println("nums["+i+"] = " + nums[i]);
//        }


//        2、将一个字符数组的值（neusofteducation）拷贝到另一个字符数组中
//        char  info1[] = { 'n','e','u','s','o','f','t','e','d','u','c','a','t','i','o','n'};
//        char info2[] = new char[info1.length];
//
//        for (int i = 0; i < info1.length; i++) {
//            info2[i] = info1[i];
//        }
//
//
//        System.out.println("==================2、将一个字符数组的值（neusofteducation）拷贝到另一个字符数组中========================");
//        for (int i = 0; i < info2.length; i++) {
//            System.out.println("info2["+i+"] = " + info2[i]);
//        }


//        给定一个有9个整数（1,6,2,3,9,4,5,7,8）的数组，先排序，然后输出排序后的数组的值。
//        int nums[] = {1,6,2,3,9,4,5,7,8};
//        for (int i = 1; i <nums.length-1 ; i++) {
//            for (int j = 0; j < nums.length-i; j++) {
//                if(nums[j] > nums[j+1]){
//                    int temp = nums[j];
//                    nums[j] = nums[j+1];
//                    nums[j+1] = temp;
//                }
//            }
//        }
//
//
//        for (int i = 0; i < nums.length; i++) {
//            System.out.print (nums[i]+"\t");
//        }
//        System.out.println();


//         4、在一个有8个整数（18，25，7，36，13，2，89，63）的数组中找出其中最大的数及其下标。


//        int nums[] = {18   ,  25   ,  7   ,  36   ,  13   ,  2   ,  89   ,  63};
//        int maxIndex = -1;
//        int maxNum = nums[0];
//
//        for (int i = 1; i < nums.length; i++) {
//            if(nums[i]  > maxNum ){
//                maxNum = nums[i];
//                maxIndex = i;
//            }
//        }
//
//        System.out.println(String.format("最大的数是 %d   ,下标是 %d",  maxNum  ,maxIndex    ));



//        5、将一个数组中的元素逆序存放到另一各数组中。
//        int  nums[] = { 10,20,30};
//        int copy[] = new int[nums.length];
//
//
//        for (int i = 0; i < copy.length; i++) {
//            copy[i] =   nums [nums.length-i-1];
//        }
//
//        System.out.println("===========copy===============");
//        for (int i = 0; i < copy.length; i++) {
//            System.out.println(copy[i]);
//        }



//        6、将一个数组中的重复元素保留一个其他的清零。
//        int nums[] = { 1,3,1,5,7,3};
//        int copys[]  = new int[nums.length];
//
//
//        for (int i = 0; i < nums.length; i++) {
//
//            boolean exists = false;
//            for (int j = 0; j <i ; j++) {
//               if( copys[j] == nums[i]){
//                   exists = true;
//                   break;
//               }
//            }
//            if(exists){
//                copys[i] = 0;
//            }else{
//                copys[i] = nums[i];
//            }
//
//        }
//
//        for (int i = 0; i < copys.length; i++) {
//            System.out.println(copys[i]);
//        }


//        7、给定一维数组{ -10，2，3，246，-100，0，5} ，计算出数组中的平均值、最大值、最小值。
        int nums[] = { -10 , 2 , 3 , 246 , -100 , 0 , 5};
        int maxNum = nums[0];
        int minNum = nums[0];
        int sum = 0;

        for (int i = 1; i < nums.length; i++) {
            if(nums[i]  > maxNum ){
                maxNum = nums[i];
            }
            if(nums[i]  <  maxNum ){
                minNum = nums[i];
            }

            sum  += nums[i];
        }
        int avg = sum /nums.length;
        System.out.println(String.format("平均值： %d 、最大值: %d、最小值:%d  ", avg, maxNum, minNum));


    }
}
